srt-tokio 0.2.0

SRT implementation in Rust
Documentation

Implementation of SRT in pure safe rust.

Generally used for live video streaming across lossy but high bandwidth connections.

Quick start

use srt_tokio::SrtSocketBuilder;
use futures::prelude::*;
use bytes::Bytes;
use std::time::Instant;
use std::io;

#[tokio::main]
async fn main()
# // keep this to quell `needless_doctest_main` warning
# -> ()
{
let sender_fut = async {
let mut tx = SrtSocketBuilder::new_listen().local_port(2223).connect().await?;

let iter = ["1", "2", "3"];

tx.send_all(&mut stream::iter(&iter)
.map(|b| Ok((Instant::now(), Bytes::from(*b))))).await?;
tx.close().await?;

Ok::<_, io::Error>(())
};

let receiver_fut = async {
let mut rx = SrtSocketBuilder::new_connect("127.0.0.1:2223").connect().await?;

assert_eq!(rx.try_next().await?.map(|(_i, b)| b), Some(b"1"[..].into()));
assert_eq!(rx.try_next().await?.map(|(_i, b)| b), Some(b"2"[..].into()));
assert_eq!(rx.try_next().await?.map(|(_i, b)| b), Some(b"3"[..].into()));
assert_eq!(rx.try_next().await?, None);

Ok::<_, io::Error>(())
};

futures::try_join!(sender_fut, receiver_fut).unwrap();
}